{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "IWC0ysE1Dxjw" }, "source": [ "# SHAP Values for Multi-Output Regression Models\n", "\n", "Author: [coryroyce](https://github.com/coryroyce)\n", "\n", "Date updated: 3/4/2021" ] }, { "cell_type": "markdown", "metadata": { "id": "dsqdv2hjDxcQ" }, "source": [ "## Create Multi-Output Regression Model" ] }, { "cell_type": "markdown", "metadata": { "id": "-V1-MOrsEuVV" }, "source": [ "### Create Data" ] }, { "cell_type": "markdown", "metadata": { "id": "TIcX4gtHFFPE" }, "source": [ "Import required packages" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "id": "tw-jILFwEyTj" }, "outputs": [], "source": [ "import pandas as pd\n", "from keras.layers import Dense\n", "from keras.models import Sequential\n", "from sklearn.datasets import make_regression" ] }, { "cell_type": "markdown", "metadata": { "id": "Bfzmg13nFLQS" }, "source": [ "Create a custom function that generates the multi-output regression data.\n", "Note: Creating 5 outputs/targets/labels for this example, but the method easily extends to any number or outputs." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "id": "v8B9xsfaFSGW" }, "outputs": [], "source": [ "def get_dataset():\n", " # Create sample data with sklearn make_regression function\n", " X, y = make_regression(n_samples=1000, n_features=10, n_informative=7, n_targets=5, random_state=0)\n", "\n", " # Convert the data into Pandas Dataframes for easier maniplution and keeping stored column names\n", " # Create feature column names\n", " feature_cols = [\n", " \"feature_01\",\n", " \"feature_02\",\n", " \"feature_03\",\n", " \"feature_04\",\n", " \"feature_05\",\n", " \"feature_06\",\n", " \"feature_07\",\n", " \"feature_08\",\n", " \"feature_09\",\n", " \"feature_10\",\n", " ]\n", "\n", " df_features = pd.DataFrame(data=X, columns=feature_cols)\n", "\n", " # Create lable column names and dataframe\n", " label_cols = [\"labels_01\", \"labels_02\", \"labels_03\", \"labels_04\", \"labels_05\"]\n", "\n", " df_labels = pd.DataFrame(data=y, columns=label_cols)\n", "\n", " return df_features, df_labels" ] }, { "cell_type": "markdown", "metadata": { "id": "Yh04cjdtKVA6" }, "source": [ "### Create Model" ] }, { "cell_type": "markdown", "metadata": { "id": "xYDs0e-9K_NZ" }, "source": [ "Create a Tensorflow/Keras Sequential model." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "id": "DGXVRyF2KUu7" }, "outputs": [], "source": [ "def get_model(n_inputs, n_outputs):\n", " model = Sequential()\n", " model.add(Dense(32, input_dim=n_inputs, kernel_initializer=\"he_uniform\", activation=\"relu\"))\n", " model.add(Dense(n_outputs, kernel_initializer=\"he_uniform\"))\n", " model.compile(loss=\"mae\", optimizer=\"adam\")\n", " return model" ] }, { "cell_type": "markdown", "metadata": { "id": "75BCkGTOL2UI" }, "source": [ "### Train Model" ] }, { "cell_type": "markdown", "metadata": { "id": "BvNIVRGXL8RY" }, "source": [ "Create the dataset with the function defined above." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "id": "RsXjcH5EGJlf" }, "outputs": [], "source": [ "# Create the datasets\n", "X, y = get_dataset()\n", "\n", "# Get the number of inputs and outputs from the dataset\n", "n_inputs, n_outputs = X.shape[1], y.shape[1]" ] }, { "cell_type": "markdown", "metadata": { "id": "ojzK4sH0Mgwl" }, "source": [ "Load the model with function defined above." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "id": "_2jlWNjIGWeb" }, "outputs": [], "source": [ "model = get_model(n_inputs, n_outputs)" ] }, { "cell_type": "markdown", "metadata": { "id": "65ZksxGPMln4" }, "source": [ "Train the model" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "X_BKjh_XMnq8", "outputId": "1b51ff94-a6d3-4d3c-db84-67a8a215012c" }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "model.fit(X, y, verbose=0, epochs=100)" ] }, { "cell_type": "markdown", "metadata": { "id": "ahR4Mv-INAhW" }, "source": [ "Get model evaluation metrics to confirm training went well." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "EpsC81kWMnlA", "outputId": "bfb2672c-86ab-42fa-8cd3-e96f222e0c6b" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "32/32 [==============================] - 0s 826us/step - loss: 15.8952\n" ] }, { "data": { "text/plain": [ "15.895209312438965" ] }, "execution_count": 7, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "model.evaluate(x=X, y=y)" ] }, { "cell_type": "markdown", "metadata": { "id": "N4_3msWUNvN7" }, "source": [ "### Model Prediction" ] }, { "cell_type": "markdown", "metadata": { "id": "uK3Ynxv6OyCE" }, "source": [ "Manual data can be entered but in this case, just us an arbitrary index form the feature/X data." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "Zi0qG4qSN4Me", "outputId": "fd4e11c2-2f2b-4483-e45d-92ef4451358d" }, "outputs": [ { "data": { "text/plain": [ "array([[ -15.026388, -64.4412 , -75.39472 , -70.4628 , -126.55638 ]],\n", " dtype=float32)" ] }, "execution_count": 8, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "model.predict(X.iloc[0:1, :])" ] }, { "cell_type": "markdown", "metadata": { "id": "G1vnASuZPuDF" }, "source": [ "## Get SHAP Values and Plots" ] }, { "cell_type": "markdown", "metadata": { "id": "XF1Kq2kVQMPH" }, "source": [ "Apply Shapley vaules to the model." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 495 }, "id": "N6KGr8WdQMPc", "outputId": "a0dbd73d-a5a5-4718-d40c-c631c8bed104" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Collecting shap\n", "\u001b[?25l Downloading https://files.pythonhosted.org/packages/b9/f4/c5b95cddae15be80f8e58b25edceca105aa83c0b8c86a1edad24a6af80d3/shap-0.39.0.tar.gz (356kB)\n", "\r\u001b[K |█ | 10kB 16.9MB/s eta 0:00:01\r\u001b[K |█▉ | 20kB 22.8MB/s eta 0:00:01\r\u001b[K |██▊ | 30kB 12.8MB/s eta 0:00:01\r\u001b[K |███▊ | 40kB 9.3MB/s eta 0:00:01\r\u001b[K |████▋ | 51kB 4.3MB/s eta 0:00:01\r\u001b[K |█████▌ | 61kB 4.9MB/s eta 0:00:01\r\u001b[K |██████▍ | 71kB 5.1MB/s eta 0:00:01\r\u001b[K |███████▍ | 81kB 5.6MB/s eta 0:00:01\r\u001b[K |████████▎ | 92kB 5.7MB/s eta 0:00:01\r\u001b[K |█████████▏ | 102kB 6.0MB/s eta 0:00:01\r\u001b[K |██████████▏ | 112kB 6.0MB/s eta 0:00:01\r\u001b[K |███████████ | 122kB 6.0MB/s eta 0:00:01\r\u001b[K |████████████ | 133kB 6.0MB/s eta 0:00:01\r\u001b[K |████████████▉ | 143kB 6.0MB/s eta 0:00:01\r\u001b[K |█████████████▉ | 153kB 6.0MB/s eta 0:00:01\r\u001b[K |██████████████▊ | 163kB 6.0MB/s eta 0:00:01\r\u001b[K |███████████████▋ | 174kB 6.0MB/s eta 0:00:01\r\u001b[K |████████████████▋ | 184kB 6.0MB/s eta 0:00:01\r\u001b[K |█████████████████▌ | 194kB 6.0MB/s eta 0:00:01\r\u001b[K |██████████████████▍ | 204kB 6.0MB/s eta 0:00:01\r\u001b[K |███████████████████▎ | 215kB 6.0MB/s eta 0:00:01\r\u001b[K |████████████████████▎ | 225kB 6.0MB/s eta 0:00:01\r\u001b[K |█████████████████████▏ | 235kB 6.0MB/s eta 0:00:01\r\u001b[K |██████████████████████ | 245kB 6.0MB/s eta 0:00:01\r\u001b[K |███████████████████████ | 256kB 6.0MB/s eta 0:00:01\r\u001b[K |████████████████████████ | 266kB 6.0MB/s eta 0:00:01\r\u001b[K |████████████████████████▉ | 276kB 6.0MB/s eta 0:00:01\r\u001b[K |█████████████████████████▊ | 286kB 6.0MB/s eta 0:00:01\r\u001b[K |██████████████████████████▊ | 296kB 6.0MB/s eta 0:00:01\r\u001b[K |███████████████████████████▋ | 307kB 6.0MB/s eta 0:00:01\r\u001b[K |████████████████████████████▌ | 317kB 6.0MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▍ | 327kB 6.0MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▍ | 337kB 6.0MB/s eta 0:00:01\r\u001b[K |███████████████████████████████▎| 348kB 6.0MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 358kB 6.0MB/s \n", "\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from shap) (1.19.5)\n", "Requirement already satisfied: scipy in /usr/local/lib/python3.7/dist-packages (from shap) (1.4.1)\n", "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.7/dist-packages (from shap) (0.22.2.post1)\n", "Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from shap) (1.1.5)\n", "Requirement already satisfied: tqdm>4.25.0 in /usr/local/lib/python3.7/dist-packages (from shap) (4.41.1)\n", "Collecting slicer==0.0.7\n", " Downloading https://files.pythonhosted.org/packages/78/c2/b3f55dfdb8af9812fdb9baf70cacf3b9e82e505b2bd4324d588888b81202/slicer-0.0.7-py3-none-any.whl\n", "Requirement already satisfied: numba in /usr/local/lib/python3.7/dist-packages (from shap) (0.51.2)\n", "Requirement already satisfied: cloudpickle in /usr/local/lib/python3.7/dist-packages (from shap) (1.3.0)\n", "Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.7/dist-packages (from scikit-learn->shap) (1.0.1)\n", "Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas->shap) (2.8.1)\n", "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas->shap) (2018.9)\n", "Requirement already satisfied: setuptools in /usr/local/lib/python3.7/dist-packages (from numba->shap) (54.0.0)\n", "Requirement already satisfied: llvmlite<0.35,>=0.34.0.dev0 in /usr/local/lib/python3.7/dist-packages (from numba->shap) (0.34.0)\n", "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.7.3->pandas->shap) (1.15.0)\n", "Building wheels for collected packages: shap\n", " Building wheel for shap (setup.py) ... \u001b[?25l\u001b[?25hdone\n", " Created wheel for shap: filename=shap-0.39.0-cp37-cp37m-linux_x86_64.whl size=491624 sha256=d4d0a19e515d857230caed0cc9bd7ad48017557ad8d72898297455efe78376ea\n", " Stored in directory: /root/.cache/pip/wheels/15/27/f5/a8ab9da52fd159aae6477b5ede6eaaec69fd130fa0fa59f283\n", "Successfully built shap\n", "Installing collected packages: slicer, shap\n", "Successfully installed shap-0.39.0 slicer-0.0.7\n" ] }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "!pip install shap\n", "import shap\n", "\n", "# print the JS visualization code to the notebook\n", "shap.initjs()" ] }, { "cell_type": "markdown", "metadata": { "id": "yMTpA0MQW69j" }, "source": [ "Here we take the Keras model trained above and explain why it makes different predictions on individual samples." ] }, { "cell_type": "markdown", "metadata": { "id": "J6RDmgfWW69n" }, "source": [ "Set the explainer using the Kernel Explainer (Model agnostic explainer method form SHAP)." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "id": "qlu0QC9fW69n" }, "outputs": [], "source": [ "explainer = shap.KernelExplainer(model=model.predict, data=X.head(50), link=\"identity\")" ] }, { "cell_type": "markdown", "metadata": { "id": "Tq08AY7gW69o" }, "source": [ "Get the Shapley value for a single example." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 66, "referenced_widgets": [ "be96ed0927aa4ecfa9beb659901de005", "739a5abf57fa4dffbd8b35524e1dc4d5", "1ed6b7beb5364c84b10f1765e1f9ca3c", "1bc7bab14cc84195934efb2bed09ef91", "0ff420f73bb946aca783d9422e32ff51", "8c446400caa244a2a4cc92a26e77b8d5", "cc643293effb4184bf910bc3359c5d43", "49fe6984069a4219a89e3d4817a67bb6" ] }, "id": "qxn-M5kRW69o", "outputId": "b9decef1-6c9b-4f90-f93b-29de2a3ea212" }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "be96ed0927aa4ecfa9beb659901de005", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=0.0, max=1.0), HTML(value='')))" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "# Set the index of the specific example to explain\n", "X_idx = 0\n", "\n", "shap_value_single = explainer.shap_values(X=X.iloc[X_idx : X_idx + 1, :], nsamples=100)" ] }, { "cell_type": "markdown", "metadata": { "id": "3cmO2kegW69p" }, "source": [ "Display the details of the single example" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 98 }, "id": "Q9vGc6faW69p", "outputId": "c5bd70ef-b7a4-4c14-883f-f83d32e35d40" }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
feature_01feature_02feature_03feature_04feature_05feature_06feature_07feature_08feature_09feature_10
0-0.0935550.417854-1.655827-2.048833-0.258209-0.989744-0.154596-0.3382941.503827-0.514878
\n", "
" ], "text/plain": [ " feature_01 feature_02 feature_03 ... feature_08 feature_09 feature_10\n", "0 -0.093555 0.417854 -1.655827 ... -0.338294 1.503827 -0.514878\n", "\n", "[1 rows x 10 columns]" ] }, "execution_count": 12, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "X.iloc[X_idx : X_idx + 1, :]" ] }, { "cell_type": "markdown", "metadata": { "id": "FYy3KvQtW69p" }, "source": [ "Choose the label/output/target to run individual explanations on:\n", "\n", "Note: The dropdown menu can easily be replaced by manually setting the index on the label to explain. " ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "id": "3vapc-xSW69p" }, "outputs": [], "source": [ "import ipywidgets as widgets" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 49, "referenced_widgets": [ "2d7fabca6cb144e6b481a8aa2a9180a0", "882d87373519439ca4ba14d805c07d61", "3884892d84a2488ba1a4074ef3ecddea" ] }, "id": "7bgF1mDYW69q", "outputId": "a8d9b7ff-f45b-418a-9344-9618654eaf40" }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "2d7fabca6cb144e6b481a8aa2a9180a0", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Dropdown(description='Select Label:', options=(('labels_01', 0), ('labels_02', 1), ('labels_03', 2), ('labels_…" ] }, "metadata": { "tags": [] }, "output_type": "display_data" } ], "source": [ "# Create the list of all labels for the drop down list\n", "list_of_labels = y.columns.to_list()\n", "\n", "# Create a list of tuples so that the index of the label is what is returned\n", "tuple_of_labels = list(zip(list_of_labels, range(len(list_of_labels))))\n", "\n", "# Create a widget for the labels and then display the widget\n", "current_label = widgets.Dropdown(options=tuple_of_labels, value=0, description=\"Select Label:\")\n", "\n", "# Display the dropdown list (Note: access index value with 'current_label.value')\n", "current_label" ] }, { "cell_type": "markdown", "metadata": { "id": "qhXLd5nUW69q" }, "source": [ "Plot the force plot for a single example and a single label/output/target" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 211 }, "id": "vx8WVn_lW69q", "outputId": "3bcabafa-0f29-474c-b68f-03fe71400357" }, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current label Shown: labels_01\n" ] }, { "data": { "text/html": [ "\n", "
\n", "
\n", " Visualization omitted, Javascript library not loaded!
\n", " Have you run `initjs()` in this notebook? If this notebook was from another\n", " user you must also trust this notebook (File -> Trust notebook). If you are viewing\n", " this notebook on github the Javascript has been stripped for security. If you are using\n", " JupyterLab this error is because a JupyterLab extension has not yet been written.\n", "
\n", " " ], "text/plain": [ "" ] }, "execution_count": 15, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "# print the JS visualization code to the notebook\n", "shap.initjs()\n", "\n", "print(f\"Current label Shown: {list_of_labels[current_label.value]}\")\n", "\n", "shap.force_plot(\n", " base_value=explainer.expected_value[current_label.value],\n", " shap_values=shap_value_single[current_label.value],\n", " features=X.iloc[X_idx : X_idx + 1, :],\n", ")" ] }, { "cell_type": "markdown", "metadata": { "id": "1GSnPlRM4Wqy" }, "source": [ "Create the summary plot for a specific output/label/target." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 66, "referenced_widgets": [ "de75cddebb2e4333a359c88be1ed0c46", "a84fea8af23e4adbb04f8352e2a7de63", "73a6f9233fa642289d4a2940b98b5a65", "9fd16a4edfca494f82462605d09b376c", "df33c21deb394db4b4c3fcccbb12509f", "2df255b85ca24283ba33ca52974bd704", "9035bc746bf841b384dc8e596e474d66", "330175c1ace147cfaaae1a8a6c4dd216" ] }, "id": "PgU6F5yrm8RK", "outputId": "6d25972d-9eef-44be-ca7c-56bbf1eab95d" }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "de75cddebb2e4333a359c88be1ed0c46", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatProgress(value=0.0, max=50.0), HTML(value='')))" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "# Note: We are limiting to the first 50 training examples since it takes time to calculate the full number of sampels\n", "shap_values = explainer.shap_values(X=X.iloc[0:50, :], nsamples=100)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 429 }, "id": "LCbEhcksmmtp", "outputId": "fdd4a3ec-9fb0-4f23-818d-a3ab8a1a166a" }, "outputs": [ { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Current Label Shown: labels_01\n", "\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light", "tags": [] }, "output_type": "display_data" } ], "source": [ "# print the JS visualization code to the notebook\n", "shap.initjs()\n", "\n", "print(f\"Current Label Shown: {list_of_labels[current_label.value]}\\n\")\n", "\n", "shap.summary_plot(shap_values=shap_values[current_label.value], features=X.iloc[0:50, :])" ] }, { "cell_type": "markdown", "metadata": { "id": "6Jb4tiD7avxv" }, "source": [ "Summary Plot Notes:\n", "\n", "Based on the above summary plot we can see that Features 01, 03, and 07 are the features that have no influence on the model and could be dropped (Note that in the data setup we chose 10 features and only 7 of them had a meaningful relationship with the labels/targets). This is the big advantage of SHAP since without this we would not have much insight into which features are actually influencing our model.\n", "\n", "The above setup with the dropdown menu allows us to choose the individual labels to explore in more detail. " ] }, { "cell_type": "markdown", "metadata": { "id": "jNvC7PHa9OuM" }, "source": [ "Force Plot for the first 50 individual examples." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 445 }, "id": "6-VacRds9OuQ", "outputId": "2c8e9ecb-8ac4-41d7-a1ae-4a8f7af53e61" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Current Label Shown: labels_01\n", "\n" ] }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": { "tags": [] }, "output_type": "display_data" }, { "data": { "text/html": [ "\n", "
\n", "
\n", " Visualization omitted, Javascript library not loaded!
\n", " Have you run `initjs()` in this notebook? If this notebook was from another\n", " user you must also trust this notebook (File -> Trust notebook). If you are viewing\n", " this notebook on github the Javascript has been stripped for security. If you are using\n", " JupyterLab this error is because a JupyterLab extension has not yet been written.\n", "
\n", " " ], "text/plain": [ "" ] }, "execution_count": 18, "metadata": { "tags": [] }, "output_type": "execute_result" } ], "source": [ "print(f\"Current Label Shown: {list_of_labels[current_label.value]}\\n\")\n", "\n", "# print the JS visualization code to the notebook\n", "shap.initjs()\n", "\n", "shap.force_plot(\n", " base_value=explainer.expected_value[current_label.value],\n", " shap_values=shap_values[current_label.value],\n", " features=X.iloc[0:50, :],\n", ")" ] }, { "cell_type": "markdown", "metadata": { "id": "TkkKvl0KOC_K" }, "source": [ "## Reference" ] }, { "cell_type": "markdown", "metadata": { "id": "9twCMRTsOFcD" }, "source": [ "Multi-output regression model format/build was largely based on [Deep Learning Models for Multi-Output Regression](https://machinelearningmastery.com/deep-learning-models-for-multi-output-regression/)" ] } ], "metadata": { "colab": { "collapsed_sections": [], "name": "SHAP_Values_for_Multi_Output_Regression_Models.ipynb", "provenance": [], "toc_visible": true }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "0ff420f73bb946aca783d9422e32ff51": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "initial" } }, "1bc7bab14cc84195934efb2bed09ef91": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_49fe6984069a4219a89e3d4817a67bb6", "placeholder": "​", "style": "IPY_MODEL_cc643293effb4184bf910bc3359c5d43", "value": " 1/1 [00:00<00:00, 1.10it/s]" } }, "1ed6b7beb5364c84b10f1765e1f9ca3c": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "100%", "description_tooltip": null, "layout": "IPY_MODEL_8c446400caa244a2a4cc92a26e77b8d5", "max": 1, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_0ff420f73bb946aca783d9422e32ff51", "value": 1 } }, "2d7fabca6cb144e6b481a8aa2a9180a0": { "model_module": "@jupyter-widgets/controls", "model_name": "DropdownModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DropdownModel", "_options_labels": [ "labels_01", "labels_02", "labels_03", "labels_04", "labels_05" ], "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "DropdownView", "description": "Select Label:", "description_tooltip": null, "disabled": false, "index": 0, "layout": "IPY_MODEL_3884892d84a2488ba1a4074ef3ecddea", "style": "IPY_MODEL_882d87373519439ca4ba14d805c07d61" } }, "2df255b85ca24283ba33ca52974bd704": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "330175c1ace147cfaaae1a8a6c4dd216": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "3884892d84a2488ba1a4074ef3ecddea": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "49fe6984069a4219a89e3d4817a67bb6": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "739a5abf57fa4dffbd8b35524e1dc4d5": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "73a6f9233fa642289d4a2940b98b5a65": { "model_module": "@jupyter-widgets/controls", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "ProgressView", "bar_style": "success", "description": "100%", "description_tooltip": null, "layout": "IPY_MODEL_2df255b85ca24283ba33ca52974bd704", "max": 50, "min": 0, "orientation": "horizontal", "style": "IPY_MODEL_df33c21deb394db4b4c3fcccbb12509f", "value": 50 } }, "882d87373519439ca4ba14d805c07d61": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "8c446400caa244a2a4cc92a26e77b8d5": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "9035bc746bf841b384dc8e596e474d66": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "9fd16a4edfca494f82462605d09b376c": { "model_module": "@jupyter-widgets/controls", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HTMLView", "description": "", "description_tooltip": null, "layout": "IPY_MODEL_330175c1ace147cfaaae1a8a6c4dd216", "placeholder": "​", "style": "IPY_MODEL_9035bc746bf841b384dc8e596e474d66", "value": " 50/50 [00:15<00:00, 3.17it/s]" } }, "a84fea8af23e4adbb04f8352e2a7de63": { "model_module": "@jupyter-widgets/base", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "be96ed0927aa4ecfa9beb659901de005": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_1ed6b7beb5364c84b10f1765e1f9ca3c", "IPY_MODEL_1bc7bab14cc84195934efb2bed09ef91" ], "layout": "IPY_MODEL_739a5abf57fa4dffbd8b35524e1dc4d5" } }, "cc643293effb4184bf910bc3359c5d43": { "model_module": "@jupyter-widgets/controls", "model_name": "DescriptionStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "DescriptionStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "description_width": "" } }, "de75cddebb2e4333a359c88be1ed0c46": { "model_module": "@jupyter-widgets/controls", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "1.5.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_73a6f9233fa642289d4a2940b98b5a65", "IPY_MODEL_9fd16a4edfca494f82462605d09b376c" ], "layout": "IPY_MODEL_a84fea8af23e4adbb04f8352e2a7de63" } }, "df33c21deb394db4b4c3fcccbb12509f": { "model_module": "@jupyter-widgets/controls", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "1.5.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "StyleView", "bar_color": null, "description_width": "initial" } } } } }, "nbformat": 4, "nbformat_minor": 0 }